/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entities.reponse;

import entities.Proposition;
import entities.question.AbstractQuestion;
import entities.utilisateur.AbstractRepondant;
import java.util.List;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;

/**
 *
 * @author loic.vaugeois
 */
@Entity
@DiscriminatorValue(value="choix")
public class ReponseChoix extends AbstractReponse{
/*
 **********************ATTRIBUTS
 */
    /*
     * Liste des propositons répondues
     */
    @ManyToMany
    @JoinTable(name="choisir",
    joinColumns={@JoinColumn(name="id_reponse")},
    inverseJoinColumns={@JoinColumn(name="id_proposition")})
    List<Proposition> listPropositionChoisies;

/*
 ****************************GETTER SETTER
 */
    public List<Proposition> getListPropositionChoisies() {
        return listPropositionChoisies;
    }

    public void setListPropositionChoisies(List<Proposition> listPropositionChoisies) {
        if (listPropositionChoisies==null) throw new IllegalArgumentException("Une réponseChoix ne peut pas être créée sans proposition choisie.");
        this.listPropositionChoisies = listPropositionChoisies;
    }

/*
 ******************************CONSTRUCTEURS
 */
    /**
     * Constructeur ReponseChoix
     * @param question
     * @param repondant
     * @param listPropositionChoisies
     */
    public ReponseChoix(AbstractQuestion question, AbstractRepondant repondant, List<Proposition> listPropositionChoisies) {
        super(question, repondant);
        setListPropositionChoisies(listPropositionChoisies);
    }

    /**
     * Constructeur nécessaire à JPA
     */
    public ReponseChoix(){

    }


}
